package com.kehanpay.sdk.example;

import java.math.BigInteger;
import java.security.SecureRandom;

import com.kehanpay.sdk.Kehan;

/**
 */
public class Main {

    /**
     * kehanpay管理平台对应的 API Key，api_key 获取方式：登录 (https://mch.kehanpay.com)->点击管理平台右上角公司名称->开发信息-> Secret Key
     */
    private final static String apiKey = "sk_live_889012693439090689";

    /**
     * kehanpay 管理平台商户对应的应用 ID，app_id 获取方式：登录 (https://mch.kehanpay.com)->点击你创建的应用->应用首页->应用 ID(App ID)
     */
    public final static String appId = "app_889012693439090690";

    /**
	* 设置请求签名密钥，密钥对需要你自己用 openssl 工具生成，如何生成可以参考帮助中心：https://help.kehanpay.com/article/123161；
	* 生成密钥后，需要在代码中设置请求签名的私钥(rsa_private_key.pem)；
	* 然后登录 (https://mch.kehanpay.com)->点击右上角公司名称->开发信息->商户公钥（用于商户身份验证）
	* 将你的公钥复制粘贴进去并且保存->先启用 Test 模式进行测试->测试通过后启用 Live 模式
	*/
    // 你生成的私钥路径
    private final static String privateKeyFilePath = "src/main/resources/res/your_rsa_private_key.pem";
    //private final static String privateKeyFilePath = "c:\\your_rsa_private_key.pem";

    public static void main(String[] args) throws Exception {

        // 设置 API Key
        Kehan.apiKey = apiKey;

        // 设置私钥路径，用于请求签名
        Kehan.privateKeyPath = privateKeyFilePath;
        /**
         * 或者直接设置私钥内容
         kehanpay.privateKey = "-----BEGIN RSA PRIVATE KEY-----\n" +
         "... 私钥内容字符串 ...\n" +
         "-----END RSA PRIVATE KEY-----\n";
         */

        // Charge（创建支付订单） 示例
        ChargeExample.runDemos(appId);

        // Refund（创建退款订单） 示例
        //RefundExample.runDemos();

    }

    private static SecureRandom random = new SecureRandom();

    public static String randomString(int length) {
        String str = new BigInteger(130, random).toString(32);
        return str.substring(0, length);
    }
}
